package Top_Interview_Questions.Formal_Test;

import Top_Interview_Questions.Sort.Supple.ListNode;

import java.util.*;

/**
 * @Author: 吕庆龙
 * @Date: 2020/3/2 13:12
 * <p>
 * 功能描述:
 */
public class TestPriorityQueue {

    public static void main(String[] args) {
        PriorityQueue<Integer> heap =
                new PriorityQueue<Integer>(new Comparator<Integer>() {
                    @Override
                    public int compare(Integer o1, Integer o2) {
                        if (o1 < o2) return -1;
                        else if (o1 == o2) return 0;
                        else return 1;
                    }
                });

        heap.add(12);
        heap.add(7);
        heap.add(19);
        heap.add(2);
        heap.add(6);
        heap.add(4);
            //用这种方式去会报ConcurrentModificationException
//        for (Integer i :heap){
//            System.out.println(heap.poll());
//        }

        /*
        * 可以确定的是PriorityQueue,在add的时候不会调用比较器。是在poll的时候调用比较器,具体怎么调用
        * 的还需要看源码
        */
        while (!heap.isEmpty()){
            System.out.println(heap.poll());
        }

        System.out.println("断点");
    }

}
